package com.bonc.rms.service.tms;

import java.util.Date;
import java.util.List;
import java.util.Map;

import com.bonc.rms.entity.tms.Template;

/**
 * ZEmployeeService
 * @author zlq
 *
 */
public interface ZEmployeeService {
	
	//人员按学历和部门分布
	public List<Template> getDegreeDistribute(Integer departmentId);
	
	//人员按性别和部门分布
	public List<Template> getGenderDistribute(Integer departmentId);

	//HC指标
	public List<String> getEntryTypeList(Integer departmentId, Integer entryType, Date startMonth, Date endMonth);

	//HC周报--获取入职类型为实习生的人数
	public List<String> getEntryTypeNumByWeek(Integer departmentId, Integer entryType, Date startDate, Date endDate);

	//HC周报--获取时间范围内所有星期五列表
	public List<String> getFridayList(Date startDate, Date endDate);
	
	//短期离职员工预警 -- 获得按性别分布     getShortDimissionDistributeByGender
	public List<Template> getSDDByGender(Integer departmentID); 

	//短期离职员工预警 -- 获得按年龄分布     getShortDimissionDistributeByAge
	public List<Template> getSDDByAge(Integer departmentID); 
	
	//短期离职员工预警 -- 获得按学位分布    getShortDimissionDistributeByDegree
	public List<Template> getSDDByDegree(Integer departmentID); 
	
	//短期离职员工预警 -- 获得按工作年限分布    getShortDimissionDistributeByWorkExperience
	public List<Template> getSDDByWE(Integer departmentID); 
	
	//短期离职员工数量前十的一级部门部门(总公司)
	public Map<String, List<String>> getShortDimissionTOPDept();
	
	//短期离职员工数量前十的二级部门(某一级部门下)
	public Map<String, List<String>> getShortDimissionTOPDeptByDept(Integer departmentID);
	
	//判断登录用户所属一级部门是否为叶子结点 1-是   0-否
	Integer getLeafTag(Integer departmentId);
	
	//判断登录用户所在一级部们所属level 
	Integer getLevelTag(Integer departmentId);
	
	//获取部门 id 对应的部门名称
	String getDeptName(Integer departmentId);
	
	//获取登录用户所在部门的子部门数量
	Integer getSubDeptNum(Integer departmentId);
}
